package com.mdata.model.dto.wechat.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * status_filter 	否 	客户群跟进状态过滤。
 * 0 - 所有列表(即不过滤)
 * 1 - 离职待继承
 * 2 - 离职继承中
 * 3 - 离职继承完成
 *
 * 默认为0
 * owner_filter 	否 	群主过滤。
 * 如果不填，表示获取应用可见范围内全部群主的数据（但是不建议这么用，如果可见范围人数超过1000人，为了防止数据包过大，会报错 81017）
 * owner_filter.userid_list 	否 	用户ID列表。最多100个
 * cursor 	否 	用于分页查询的游标，字符串类型，由上一次调用返回，首次调用不填
 * limit 	是 	分页，预期请求的数据量，取值范围 1 ~ 1000
 *
 *     {
 *         "status_filter": 0,
 *         "owner_filter": {
 *             "userid_list": ["abel"]
 *         },
 *         "cursor" : "r9FqSqsI8fgNbHLHE5QoCP50UIg2cFQbfma3l2QsmwI",
 *         "limit" : 10
 *     }
 */
@Data
@NoArgsConstructor
public class GroupChatGetListDTO {

    @JsonProperty(value = "status_filter")
    private Integer statusFilter;

    @JsonProperty(value = "owner_filter")
    private GroupChatOwnerDTO ownerFilter;

    @JsonProperty(value = "cursor")
    private String cursor;

    @JsonProperty(value = "limit")
    private Integer limit;

    public GroupChatGetListDTO(Integer statusFilter, String cursor, Integer limit, List<String> useridList) {
        this.statusFilter = statusFilter;
        String[] strings = new String[useridList.size()];
        this.ownerFilter = new GroupChatOwnerDTO(useridList.toArray(strings));
        this.cursor = cursor;
        this.limit = limit;
    }
}
